Skip to content

Add support for JFrog artifactory.#1553

Open
lesaux wants to merge 16 commits intoaptly-dev:masterfrom
linuxdataflow:feat/pls/jfrog-support
Open

Add support for JFrog artifactory.#1553
lesaux wants to merge 16 commits intoaptly-dev:masterfrom
linuxdataflow:feat/pls/jfrog-support

Conversation

@lesaux
Copy link
Copy Markdown

@lesaux lesaux commented Apr 7, 2026

Description of the Change

Add support for JFrog artifactory.
One could use a "generic" JFrog repository (not debian/apt compatible repo: we wouldn't want it to recalculate Release files)

Checklist

  • allow Maintainers to edit PR (rebase, run coverage, help with tests, ...)
  • unit-test added (if change is algorithm)
  • functional test added/updated (if change is functional)
  • man page updated (if applicable)
  • bash completion updated (if applicable)
  • documentation updated
  • author name in AUTHORS

@codecov
Copy link
Copy Markdown

codecov bot commented Apr 7, 2026

Codecov Report

❌ Patch coverage is 92.21557% with 13 lines in your changes missing coverage. Please review.
✅ Project coverage is 76.85%. Comparing base (2ac4c75) to head (84bb9eb).
⚠️ Report is 5 commits behind head on master.

Files with missing lines Patch % Lines
jfrog/public.go 91.44% 8 Missing and 5 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1553      +/-   ##
==========================================
- Coverage   76.96%   76.85%   -0.12%     
==========================================
  Files         160      162       +2     
  Lines       14757    14945     +188     
==========================================
+ Hits        11358    11486     +128     
- Misses       2266     2325      +59     
- Partials     1133     1134       +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

lesaux added 7 commits April 7, 2026 16:02
- Remove unused pathCache field from PublishedStorage struct
- Remove unused md5s accumulation in Filelist()
- Fix unchecked error return on expectedOut.Write in config_test.go
- Suppress unused linter on configFileYAML/configFileYAMLError constants
  (retained to avoid merge conflicts with feat/pls/gcs-support)
- Add --timeout=10m to golangci-lint workflow
v0.5.14 introduced a `1 << 31` constant assigned to an `int` variable
in lzma/reader.go, which overflows on 32-bit architectures (i386, armhf).
v0.5.15 fixes this by using int64.
@neolynx neolynx self-assigned this Apr 12, 2026
@neolynx neolynx requested a review from a team April 12, 2026 19:34
@neolynx neolynx added needs rebase The PR needs to be rebased on master needs maintainer access and removed needs maintainer access labels Apr 12, 2026
Comment thread .github/workflows/ci.yml
AZURE_STORAGE_ACCESS_KEY: "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
JFROG_URL: ${{ secrets.JFROG_URL }}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not necessarily blocking this MR, but what would it look like to get an Artifactory instance running for these integration tests? It's not clear what their free/OSS offering would take to host or if it supports the functionality we need here.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sorry I forgot to clean this out.
Unfortunately only a 30 day trial is available for JFrog as far as I am aware, and i don't think it would be usable in ci .
I would understand if you didn't think adding support for this was very interesting. I needed this feature for a project and thought I would share.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No I think it's very interesting, having used Artifactory's built in "Debian Snapshots" before, this would be a welcome improvement :)

I was wondering how we could see it in action, but if it's worked for your personal needs, that's a good vote of confidence.

@lesaux
Copy link
Copy Markdown
Author

lesaux commented Apr 13, 2026 via email

Comment thread debian/aptly.conf
# # JFrog URL
# url: "https://artifactory.example.com/artifactory/"
# # Repository
# repository: apt-local
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should make it clear that this is intended for a "generic" Jfrog repo, and detail any other settings/setup that were needed on the Artifactory side if any.

Comment thread utils/config_test.go
"}")
}

func (s *ConfigSuite) TestLoadYAMLConfig(c *C) {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like a few tests were removed here, was that intentional?

Comment thread go.mod
github.com/aws/aws-sdk-go-v2/service/s3 v1.67.1
github.com/aws/smithy-go v1.22.1
github.com/google/uuid v1.6.0
github.com/jfrog/jfrog-client-go v1.55.0
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe if we add a new dependency, it should also be added to debian/control to facilitate debian source builds. However I'm not super familiar with this process and will defer to @neolynx on if this is necessary now and if so, what the process is (since it doesn't look like jfrog-client-go is currently packaged for Debian)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess what I can do is gate JFrog support out of Debian builds for now (build tags / packaging split), so Debian source builds remain reproducible. Let me know how to proceed.

@lesaux
Copy link
Copy Markdown
Author

lesaux commented Apr 16, 2026

I was "playing" with this in my customer's environment today. I had a small bug but now it's working beautifully. I was able to publish, update, and delete from JFrog.

I will update the PR and address your comments shortly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs rebase The PR needs to be rebased on master

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants